package com.yzqp.common.mvc.base;

import com.yzqp.common.result.WebJsonResult;
import com.yzqp.common.result.WebJsonResultUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 基础的controller
 * @param <T> 实体类型
 * @param <D> dao类型
 * @param <S> service类型
 */
//public class BaseController<T extends BaseBean, D extends BaseDao<T>, S extends BaseService<T, D>> {
    public class BaseController {

//    @Autowired
//    public S _service;
//
//    @ApiOperation(value = "全部列表")
//    @PostMapping(value = "/listAll")
//    public WebJsonResult listAll(@RequestBody Map<String, Object> params) {
//        if(params == null){
//            params = new HashMap<>();
//        }
//        List<T> list = _service.findAllList(params);
//        return WebJsonResultUtil.success(list);
//    }
//
//    @ApiOperation(value = "分页列表")
//    @PostMapping(value = "/listPage")
//    public WebJsonResult listPage(@RequestBody Map<String, Object> params) {
//        if(params == null){
//            params = new HashMap<>();
//        }
//        Page<T> res = _service.findPage(params);
//        return WebJsonResultUtil.success(res);
//    }
//
//    @ApiOperation(value = "获取详情（根据id）")
//    @GetMapping(value = "/get/{id}")
//    public WebJsonResult get(@PathVariable Long id) {
//        T res = _service.get(id);
//        return WebJsonResultUtil.success(res);
//    }
//
//    @ApiOperation(value = "获取详情（支持查询,只有一个）")
//    @PostMapping(value = "/find")
//    public WebJsonResult find(@RequestBody Map<String, Object> params) {
//        if(params == null){
//            params = new HashMap<>();
//        }
//        T res = _service.selectOne(params);
//        return WebJsonResultUtil.success(res);
//    }
//
//    @ApiOperation(value = "获取数量")
//    @PostMapping(value = "/count")
//    public WebJsonResult count(@RequestBody Map<String, Object> params) {
//        if(params == null){
//            params = new HashMap<>();
//        }
//        long count = _service.count(params);
//        return WebJsonResultUtil.success(count);
//    }
//
//    @ApiOperation(value = "添加记录")
//    @PostMapping(value = "/add")
//    public WebJsonResult add(@RequestBody T entity) {
//        _service.newInsert(entity);
//        return WebJsonResultUtil.success(entity);
//    }
//
//    @ApiOperation(value = "更新记录")
//    @PutMapping(value = "/update")
//    public WebJsonResult update(@RequestBody T entity) {
//        entity = _service.update(entity);
//        return WebJsonResultUtil.success(entity);
//    }
//
//    @ApiOperation(value = "保存记录")
//    @PostMapping(value = "/save")
//    public WebJsonResult save(@RequestBody T entity) {
//        if(entity.getId() != null){
//            entity = _service.update(entity);
//        }else {
//            entity = _service.newInsert(entity);
//        }
//        return WebJsonResultUtil.success(entity);
//    }
//
//    @ApiOperation(value = "删除记录")
//    @DeleteMapping(value = "/delete/{id}")
//    public WebJsonResult delete(@PathVariable Long id) {
//        _service.deleteById(id);
//        return WebJsonResultUtil.success();
//    }
}
